package com.lzq.leetcode.hoot100;

import java.util.Arrays;

public class s238 {

    public int[] productExceptSelf(int[] nums) {

        int len = nums.length;
        int[] ans = new int[len];
        Arrays.fill(ans, 1);
        int l = 0, r = len-1;
        int right = 1, left = 1;
        while (l < len) {
            ans[l] *= left;
            ans[r] *= right;
            left *= nums[l++];
            right *= nums[r--];
        }

        return ans;
//        int len = nums.length;
//        int[] lMulti = new int[len];
//        int[] rMulti = new int[len];
//
//        lMulti[0] = 1;
//        for (int i=1; i<len; i++) {
//            lMulti[i] = lMulti[i-1] * nums[i-1];
//        }
//
//        rMulti[len-1] = 1;
//        for (int i=len-2; i>=0; i--) {
//            rMulti[i] = rMulti[i+1] * nums[i+1];
//        }
//
//        int[] ans = new int[len];
//        for (int i=0; i<len; i++) {
//            ans[i] = lMulti[i] * rMulti[i];
//        }
//
//        return ans;
    }

    public static void main(String[] args) {
        new s238().productExceptSelf(new int[]{1,2,3,4});
    }
}
